#!/usr/bin/python
# -*- coding: utf-8 -*-
#coding=utf-8
import math
import datetimeDemo as tsLog

def demo():
    tsLog.logTs("mathDemo", preNewLineNum=2)

    # 加减乘除
    x= math.pi;
    y = math.e # 2.71828182846;
    print("PI + 自然常数E = ", x+y)
    print("PI - 自然常数E = ", x-y)
    print("PI * 自然常数E = ", x*y)
    print("PI / 自然常数E = ", x/y)

    # 平方开方
    print("PI 平方 = ", x*x)
    print("PI 平方根 = ", math.sqrt(x))

    # 向下取整，向上取整，4舍5入，强转为int(效果为向下取整)
    print("PI 向上取整 = ", math.ceil(x))
    print("PI 向下取整 = ", math.floor(x))
    print("PI 4舍5入 = ", round(x))
    print("PI 向下取整 = ", int(x))
    print("自然常数E 向下取整 = ", int(y))

    # 三角函数 反三角函数

    r2a = 57.29577951308232 # 弧度转角度比例参数

    a2r = 0.017453292519943295 # 角度转弧度比例参数
    print("自然常数E作为角度(弧度), 转为360角度 = ", y * r2a)
    print("自然常数E作为角度(弧度), 正弦 =  ", math.sin(y))
    print("自然常数E作为角度(弧度), 余弦 =  ", math.cos(y))
    print("自然常数E作为角度(弧度), 正切 = ", math.tan(y))
    print("自然常数E作为角度(弧度), 余切(正切倒数) = ", 1.0 / math.tan(y))
    print("自然常数E作为角度(弧度), 正割(余弦倒数) = ", 1.0 / math.cos(y))
    print("自然常数E作为角度(弧度), 余割(正弦倒数) = ", 1.0 / math.sin(y))

    s5 = 1.0 / math.sqrt(5)
    print("根号5分之1 反正弦(定义域 [-1,1], 值域[-pi/2,pi/2]) = ", math.asin(s5))
    print("根号5分之2 反余弦(定义域 [-1,1], 值域[0,pi]) = ", math.acos(2 * s5));
    print("0.5 反正切(值域[0,pi]) = ", math.atan(0.5))

    # 指数函数 对数函数
    print("E 的 3次方={} 用exp函数 = {}".format(math.pow(y, 3), math.exp(3.0)))
    print("E 的 PI次方={} 用exp函数 ={}".format(math.pow(y, x), math.exp(x)))
    #print("E 的 4次方=\(pow(y, 4)), 用exp函数 = \(exp(4.0))");
    print("E为底, E的PI次方的对数(如果没有精度损失应该等于PI) = ", math.log(math.exp(x)))
    print("10为底, E的PI次方的对数 = ", math.log10(math.exp(x)))
    print("2为底, E的PI次方的对数 = ", math.log(math.exp(x), 2)) # log2(N) = logeN / loge2, logeN代表以e为底的N的对数, loge2代表以e为底的2的对数


if __name__ == '__main__':
    demo()